package com.yuanjin.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.util.Log;

public class MyTimeUtils {

	public static String getTime() {
		SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd  HH:mm:ss");
		Date date = new Date();
		String datetime = format.format(date);
		return datetime;
	}

	public static long getTimeFromString(String user_time, String timeFormat) {
		String re_time = null;
		long l = 0;
		SimpleDateFormat sdformat = new SimpleDateFormat(timeFormat);
		Date d;
		try {
			d = sdformat.parse(user_time);
			l = d.getTime();
			Log.e("test", "time=" + Long.toString(l));
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return l;
	}

	/**
	 * 语音记事本-提醒时间输入的格式修正
	 * 
	 * @param inputString
	 *            -->输入的时间
	 * @return -->返回所需的时间格式
	 */
	public static String TimeCheck(String inputString) {
		/************** 对输入的时间字符串做初步过滤-去掉末尾的标点符号 **************/
		Pattern p = Pattern.compile("[。|！|？]");
		String[] strs = p.split(inputString);
		inputString = strs[0];
		/************** 对输入的时间字符串做初步过滤2-将时间的09：17冒号更换为"时" **************/
		p = Pattern.compile(":");
		Matcher m = p.matcher(inputString);
		inputString = m.replaceFirst("时")+"分";
		
		System.out.println("inputstring :"+inputString);
		// 获取当前时间
		Calendar d = Calendar.getInstance();
		int year = d.get(Calendar.YEAR);// 年
		int month = d.get(Calendar.MONTH) + 1;// 月
		int date = d.get(Calendar.DATE);// 日
		int hour = d.get(Calendar.HOUR);// 时
		int min = d.get(Calendar.MINUTE);// 分
		int sec = d.get(Calendar.SECOND);// 秒
		String returnTime = year + "年" + month + "月" + date + "日" + hour + "时"
				+ min + "分" + sec + "秒";// 待返回时间

		/************************** 时间格式 ************************************/
		String Hanzi_1 = "[\\u4E00-\\u9FA5\\uF900-\\uFA2D]{1}";// 匹配一个汉字
		// xxxx年xx月xx日xx时xx分
		String ruleString1 = "^\\d{4}" + Hanzi_1 + "\\d{1,2}" + Hanzi_1
				+ "\\d{1,2}" + Hanzi_1 + "\\d{1,2}" + Hanzi_1 + "\\d{1,2}"
				+ Hanzi_1;
		// xx年xx月xx日xx时xx分
		String ruleString2 = "^\\d{1,2}" + Hanzi_1 + "\\d{1,2}" + Hanzi_1
				+ "\\d{1,2}" + Hanzi_1 + "\\d{1,2}" + Hanzi_1 + "\\d{1,2}"
				+ Hanzi_1;
		// xx月xx日xx时xx分
		String ruleString3 = "^\\d{1,2}" + Hanzi_1 + "\\d{1,2}" + Hanzi_1
				+ "\\d{1,2}" + Hanzi_1 + "\\d{1,2}" + Hanzi_1;
		// String ruleString2 =
		// "^\\d{4}[\\u4E00-\\u9FA5\\uF900-\\uFA2D]{1}\\d{1,2}[\\u4E00-\\u9FA5\\uF900-\\uFA2D]{1}\\d{1,2}[\\u4E00-\\u9FA5\\uF900-\\uFA2D]{1}\\d{1,2}[\\u4E00-\\u9FA5\\uF900-\\uFA2D]{1}\\d{1,2}";

		Pattern p1 = Pattern.compile(ruleString1);
		Matcher m1 = p1.matcher(inputString);
		Pattern p2 = Pattern.compile(ruleString2);
		Matcher m2 = p2.matcher(inputString);
		Pattern p3 = Pattern.compile(ruleString3);
		Matcher m3 = p3.matcher(inputString);

		if (m1.find()) {
			returnTime = inputString;
		} else if (m2.find()) {// 15年12月12日，年份若只有两位则在其基础上增加2000变为2015年
			p2 = Pattern.compile("年");
			String[] strs2 = p2.split(inputString);
			strs2[0] = Integer.valueOf(strs2[0]) + 2000 + "年";
			returnTime = strs2[0] + strs2[1];
		} else if (m3.find()) {// 8月12日，则默认年份为本年
			returnTime = year + "年" + inputString;
		}

		System.out.println("returnTime=" + returnTime);
		return returnTime;
	}
}
